package entity;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Embedded;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.OneToMany;
import javax.persistence.Table;


@Entity
@Table(name="Proveedor")
public class ProveedorEntity implements Serializable{
	/**
	 * 
	 */
	private static final long serialVersionUID = 2418215206566249909L;
	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	private int idProveedor;
	private String cuit;
	private String nombre;
	@ManyToMany(cascade=CascadeType.ALL)
	@JoinTable(name="Rodamientos_Proveedor",
				joinColumns= @JoinColumn(name="IdProveedor"),
				inverseJoinColumns=@JoinColumn(name="IdRodamiento"))
	private List<RodamientoEntity>rodamientos=new ArrayList<RodamientoEntity>();
	
	
	private String estado;
	@ManyToMany (cascade=CascadeType.ALL, fetch = FetchType.EAGER)
	@JoinTable(name="Condicion_Proveedor",joinColumns=@JoinColumn(name="idProveedor"),inverseJoinColumns=@JoinColumn(name="idCondicion"))
	private List<CondicionCompraEntity> condicionCompra=new ArrayList<CondicionCompraEntity>();
	
	@Embedded
	private DomicilioEntity domicilio;
	@OneToMany(cascade=CascadeType.ALL)
	@JoinColumn(name="idProveedor")
	private  List<ListadoPecioEntity> listados=new ArrayList<ListadoPecioEntity>();
	public String getCuit() {
		return cuit;
	}
	public void setCuit(String cuit) {
		this.cuit = cuit;
	}
	public String getNombre() {
		return nombre;
	}
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	public List<RodamientoEntity> getRodamientos() {
		return rodamientos;
	}
	public void setRodamientos(List<RodamientoEntity> rodamientos) {
		this.rodamientos = rodamientos;
	}
	public String getEstyado() {
		return estado;
	}
	public void setEstyado(String estyado) {
		this.estado = estyado;
	}
	public List<CondicionCompraEntity> getCondicionCompra() {
		return condicionCompra;
	}
	public void setCondicionCompra(List<CondicionCompraEntity> condicionCompra) {
		this.condicionCompra = condicionCompra;
	}
	public DomicilioEntity getDomicilio() {
		return domicilio;
	}
	public void setDomicilio(DomicilioEntity domicilio) {
		this.domicilio = domicilio;
	}
	public List<ListadoPecioEntity> getListados() {
		return listados;
	}
	public void setListados(List<ListadoPecioEntity> listados) {
		this.listados = listados;
	}
	public int getId() {
		return idProveedor;
	}
	public void setId(int id) {
		this.idProveedor = id;
	}
	public ProveedorEntity(String cuit, String nombre,
			List<RodamientoEntity> rodamientos, String estyado,
			List<CondicionCompraEntity> condicionCompra, DomicilioEntity domicilio,
			List<ListadoPecioEntity> listados) {
		super();
		this.cuit = cuit;
		this.nombre = nombre;
		this.rodamientos = rodamientos;
		this.estado = estyado;
		this.condicionCompra = condicionCompra;
		this.domicilio = domicilio;
		this.listados = listados;
	}
	
	public ProveedorEntity(){
		
	}

	
	
	
}
